👆literal "MarginNote"
MarginNote - 在 iPad 上提升学习效率,它可能是最合适的 PDF 阅读器
- 如何使用 MarginNote
- MarginNote 提供的工具:批注(摘录)、大纲、思维导图、记忆卡
// This will animate an "Explosion" whenever you complete a TODO in Roam Research. | |
// See https://deliber.at/roam for more Roam goodies. | |
// Put this file under {{[[roam/js]]}} block. I have a page roam/js. Under that, I have {{[[roam/js]]}} and under that the javascript block | |
document.addEventListener("click", function ( e ) { | |
const target = e.target; | |
if ( | |
target.tagName === "INPUT" && | |
target.parentElement.className === "check-container" | |
) { | |
if (target.type === "checkbox" && target.checked ) { |
/* | |
* credit to Dhrumil Shah (@wandcrafting) and Robert Haisfield (@RobertHaisfield) | |
* for the original concept which was part of their RoamGames submission | |
* and can be found at: https://www.figma.com/file/5shwLdUCHxSaPNEO7pazbe/ | |
* | |
*/ | |
/* ======= OPTIONS ======== */ | |
/* note: if you change these, reload the page to see the effect */ |
FROM nginx:alpine | |
# https://thepracticalsysadmin.com/templated-nginx-configuration-with-bash-and-docker/ | |
ENV LISTEN_PORT=80 \ | |
NGINX_ENV=production \ | |
SERVER_NAME=_ \ | |
RESOLVER=8.8.8.8 \ | |
UPSTREAM_API=api:3000 \ | |
UPSTREAM_API_PROTO=http \ | |
WORKDIR=/www \ |
👆literal "MarginNote"
MarginNote - 在 iPad 上提升学习效率,它可能是最合适的 PDF 阅读器
// https://github.com/alfonsomunozpomer/react-fetch-mock | |
import React from 'react' | |
import fetchMock from 'fetch-mock' | |
import Enzyme from 'enzyme' | |
import {shallow, mount, render} from 'enzyme' | |
import Adapter from 'enzyme-adapter-react-16' | |
Enzyme.configure({ adapter: new Adapter() }) |
version: "3" | |
services: | |
sonarqube: | |
image: sonarqube | |
expose: | |
- 9000 | |
ports: | |
- "127.0.0.1:9000:9000" | |
networks: |
import React, { PropTypes } from 'react'; | |
import styled from 'styled-components' | |
const Wrapper = styled.div` | |
// styles here that used to be for .test | |
` | |
const Label = styled.label` | |
// label styles here | |
` |
import mobx from "mobx" | |
import store from "store" | |
export default function(_this) { | |
let firstRun = true | |
// will run on change | |
mobx.autorun(() => { | |
// on load check if there's an existing store on localStorage and extend the store | |
if (firstRun) { |
import firebase from 'firebase' | |
import { filter, map } from 'lodash' | |
import { makeExecutableSchema } from 'graphql-tools' | |
firebase.initializeApp({ | |
databaseURL: 'https://grafire-b1b6e.firebaseio.com', | |
}) | |
const mapSnapshotToEntity = snapshot => ({ id: snapshot.key, ...snapshot.val() }) | |
const mapSnapshotToEntities = snapshot => map(snapshot.val(), (value, id) => ({ id, ...value })) |