什么&将Foundation 5升级到6.2需要多少工作?
我们的开发商店正在接管现有F5项目的开发。看起来前端布局已经完成80%,尽管我们可能会转换到JSX,但很少会被触及。如果F6.2值得额外麻烦,我需要帮助称重,因为客户是预算有限的。 Zurb's F6 announcement仅列出了一些优先级较低的优势(A11y,类别较少)。 Flexbox可能会有所帮助,由于UnCSS,小型基础CSS不太受关注。
我曾经使用过F6.2一次,但是希望听到那些将实际网站从F5升级到F6.x的人们的问题。需要时间。仍然没有F5 to F6 upgrade guide,& release notes are lacking
答案 0 :(得分:9)
从Foundation 5升级到最新的Foundation 6涉及从新网站模板重建完整网站,因为大部分HTML代码都有所不同。不,并不难,但是,在进行转型方面有相当多的工作。然而,无数的改进是值得的。
您需要在新文件夹中启动一个新的网站项目,以获取所有更新的文件集,这些文件集包含在这些文件夹中......
有多种方法可以安装Foundation for Sites 6,我喜欢使用命令提示符的npm节点包管理器,如下所示:
基础新品
你今天在建什么? =网站(网站基金会)
该项目名为= whatever_projectname
的内容是什么
您想使用哪个模板? =基本模板:包含Sass编译器
cd whatever_projectname
使用GULP构建css \ app.css
基础建设
更新css \ app.css
npm start
OR
基础手表
CTRL + C结束
一旦下载了新的v6文件集,然后在' scss'您需要customize the project SCSS files and regenerate the CSS的文件夹。
基金会5 ==>基础6转换完成。
您进行的转化次数越多,转化的速度就越快。
答案 1 :(得分:5)
我认为它比这更复杂(问题中解释了什么)。以下是我必须应用于(相对简单的项目)的更改。所涉及的工作量使我在升级其他更大的项目之前三思而后行。但是,我认为以下内容可能对其他可能正在考虑升级其网站的人有用。
<强> 1。 ////////////// JS: 在文件系统上,将hs / php脚本底部引用的js脚本替换为新版本,这些脚本位于\ bower_components \ foundation-sites \ dist。 例如,将\ bower_components \ foundation-sites \ dist \ abc.js复制到yourProject / js / abc.js。
<强> 2。 ////////////// SCSS VARIABLES: 在文件(_settings.scss),(_ custom_styles.scss)等中:
使用$paragraph-font-size
$global-font-size
使用$callout-bg
$callout-background
第3。 ////////////// PANELS&amp;警告框: 在php / html中:REPLACE类(面板)&amp; (警告)带有类标注。对我来说,以下是我在编辑器的替换对话框中使用的字符串(使用正则表达式)。根据您的设计和编码风格,您可能需要不同的字符串。
更换:<div data-alert class='alert-box **success** round'>
WITH:<div class='**success** callout' data-closable='slide-out-right'>
更换:<div data-alert class='alert-box **alert** round'>
WITH:<div class='**alert** callout' data-closable='slide-out-right'>
更换:<a href='#' class='close'>×</a>
WITH:<button class='close-button' aria-label='Dismiss alert' type='button' data-close> <span aria-hidden='true'>×</span> </button>
删除该行:<script src="./js/foundation.alert.js"></script>
对于每个提醒框内的文字,请在短信中添加<p>
:<p>...</p>
<强> 4。 //////////////菜单: 我认为处理菜单的最佳方法是从头开始重新编写它们。
<强> 5。 //////////////表格
替换:class='table'
WITH:class='hover'
<强> 6。 //////////////让表格响应(可选):
更换:<table
WITH:<div class='table-scroll'><table
更换:</table>
WITH:</table></div>
<强> 7。 ////////////// ABIDE:
更换:</label>(.*)\r\n(.*)<small class=['|"]error['|"]>(.*)</small>
WITH:<span class="form-error">$3</span>\r\n$2</label>
更换:<form (.*) data-abide(.*)>
WITH:<form $1 data-abide novalidate $2>
- 自定义模式: - 使用以下2行,而不是注释行:
// Foundation 6 Style:
Foundation.Abide.defaults.patterns['dd_mm_yyyy'] = /((0[1-9]|[12][0-9]|3[01])[- \/.]0[1-9]|1[012])[- \/.]\d\d/;
Foundation.Abide.defaults.patterns['short_time'] = /(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])/;
// Foundation 5 Style:
// $(document).foundation({
// abide : {
// patterns : {
// short_time: /(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])/,
// dd_mm_yyyy: /((0[1-9]|[12][0-9]|3[01])[- \/.]0[1-9]|1[012])[- \/.]\d\d/
// },
// }
// });
**绝不是,这是所有必需更改的综合列表。如果是的话,基金会团队很久以前就会发布它。但是,它是一个起点,可以让您了解所涉及的内容。
祝你好运.... **
答案 2 :(得分:0)
还发现abide希望在初始化Foundation 6之前定义自定义验证器 例如。我有一个首先被称为的电话号码验证器
import java.awt.Dimension;
import java.awt.EventQueue;
import java.util.Random;
import javax.swing.JFrame;
import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.statistics.Regression;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
/**
* @see https://stackoverflow.com/a/37716411/230513
* @see http://stackoverflow.com/a/37716411/230513
*/
public class RegressionTest {
private static final int N = 16;
private static final Random R = new Random();
private static XYDataset createDataset() {
XYSeries series = new XYSeries("Data");
for (int i = 0; i < N; i++) {
series.add(i, R.nextGaussian() + i);
}
XYSeriesCollection xyData = new XYSeriesCollection(series);
double[] coefficients = Regression.getOLSRegression(xyData, 0);
double b = coefficients[0]; // intercept
double m = coefficients[1]; // slope
XYSeries trend = new XYSeries("Trend");
double x = series.getDataItem(0).getXValue();
trend.add(x, m * x + b);
x = series.getDataItem(series.getItemCount() - 1).getXValue();
trend.add(x, m * x + b);
xyData.addSeries(trend);
return xyData;
}
private static JFreeChart createChart(final XYDataset dataset) {
JFreeChart chart = ChartFactory.createScatterPlot("Test", "X", "Y",
dataset, PlotOrientation.VERTICAL, true, false, false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer();
r.setSeriesLinesVisible(1, Boolean.TRUE);
r.setSeriesShapesVisible(1, Boolean.FALSE);
return chart;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
XYDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart) {
@Override
public Dimension getPreferredSize() {
return new Dimension(640, 480);
}
};
f.add(chartPanel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}